<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UploadController extends Controller
{
    /**
     * 处理图片上传
     */
    public function upload(Request $request){
        //需要注意，利用laravel的图片上传方法！注意服务器PHP版本里的fileinfo的扩展是否打开
        //获取前台图片信息
        $file = $request->file('file');
        //判断上传的图片是否合法
        if ($file->isValid()){
            //如果合法就处理
            //ymd是时间名，upload是文件
            //第一个参数,传递的是忽略默认图片上传地址的路径之后,我们自己希望定义的文件上传的文件夹名称,不能带上文件的名称, 因为系统会自动生成唯一的文件名
            //第二个参数是相对于当前项目来说的存储图片的磁盘名称,如果不传递第二个参数,会去filesystems.php文件中找default,如果你传递了第二个参数,会去配置文件中的disks中找第二个参数值的名称,然后将图片上传至对应的位置
            $path = $file->store(date('ymd'),'upload');
            //上传完成之后，需要给固定的返回值
            return ['file' => asset('/uploadImages/'.$path),'code'=>0];
        }
    }

    public function bianji(Request $request){
        //获取前台请求过来的数据
        $file = $request->file('file');
        //判断是否合法
        if ($file->isValid()){
            //如果合法就继续执行上传
            $path = $file->store(date('ymd'),'upload');
            //上传完毕，找到手册里面对应的返回值
            return [
                "success"   => true,
                "msg"       => "上传成功",
                "file_path" => asset('/uploadImages/'.$path)//文件地址
            ];
        }
    }

    public function fileLists(){
        $files = glob('uploadImages/*/*');
        foreach ($files as $f){
            $files = asset($f);
            $data[]=[
                'url'       => $files,
                'path'      => $files,
                'size'      => filesize($f),
                'name'      => basename($f),
                'createtime'=> date('Y-m-d',filesize($f)),
            ];
        }
        return ['data' => $data,'code' => 0,'page' => []];
    }
}
